/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Compras.Controlador;

import com.dp1.pucp.Compras.DAO.OrdenCompraDAO;
import com.dp1.pucp.Compras.VIsta.BuscarPedidoCompraGUI;
import com.dp1.pucp.Compras.VIsta.DetallePedidoCompraGUI;

import com.dp1.pucp.Modelo.Clases.Pedidocompra;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JOptionPane;

/**
 *
 * @author ubuntu64
 */
public class BuscarPedidoCompraControlador {
     private OrdenCompraDAO m;
     private BuscarPedidoCompraGUI buscarPedidoCompraView;
   
    private ArrayList<Pedidocompra> lstPedido;
//    private ArrayList<String> lstEstado;
//    private final static int ESTADO_ACTIVO=1;
//    private final static int ESTADO_INACTIVO=2;
    
    public BuscarPedidoCompraControlador(OrdenCompraDAO dao, BuscarPedidoCompraGUI v){
        m = dao;
        buscarPedidoCompraView = v;
       
//        llenarEstadoCombo();
          buscarPedidoCompraView.addBuscarListener(new listarPedido(this) );
          buscarPedidoCompraView.addLimpiarListener(new limpiarListener());
          buscarPedidoCompraView.addAsignarProvListener(new asignarProvListener(this));
          buscarPedidoCompraView.addCancelarListener(new cancelarListener());

        
    }
    class asignarProvListener implements ActionListener
    {
        private BuscarPedidoCompraControlador buc;
        public asignarProvListener(BuscarPedidoCompraControlador buscarusr){
            buc=buscarusr;
        }
        @Override
        public void actionPerformed(ActionEvent e) {            
            int sel=buscarPedidoCompraView.getFilaSel();
            if (sel!=-1){
                DetallePedidoCompraGUI p = new DetallePedidoCompraGUI(buscarPedidoCompraView.getPadre(), true);
                Pedidocompra u = lstPedido.get(sel);                
                DetallePedidoCompraControlador c = new DetallePedidoCompraControlador (m,p,buc,u);
                p.setVisible(true);                
            }
            else
                buscarPedidoCompraView.mostrarAviso("Debe seleccionar una fila para continuar");
        }
    }
   class listarPedido implements ActionListener
    {
        
        public listarPedido(BuscarPedidoCompraControlador buscarPedido){
            
        }
        @Override
        public void actionPerformed(ActionEvent e) {
//            String codigo;
//            Date fechaIni, fechaFin;
//            
//            codigo= buscarPedidoCompraView.getCodigo();
//            fechaIni = buscarPedidoCompraView.getFechaIni();
//            fechaFin = buscarPedidoCompraView.getFechaFin();
//            if (codigo.equals("")){
//                 lstPedido = m.listarPedidoCompra();
//                 if (((fechaIni != null) & (fechaFin == null)) || ((fechaIni == null) & (fechaFin != null)) ) 
//                         buscarPedidoCompraView.mostrarError("Debe ingresar un rango de fechas");
//                 else if ((fechaIni == null) & (fechaFin == null))
//                    lstPedido = m.listarPedidoCompra();
//                 else
//                    lstPedido = m.listarPedidoCompraPorFecha(fechaIni, fechaFin);
//            }
//            else
//            lstPedido = m.listarPedidoCompraPorCodigo(codigo);
//            
//            if (lstPedido.size()==0)
//                buscarPedidoCompraView.mostrarAviso("No se ha registrado ningun pedido");
//            else
//            buscarPedidoCompraView.llenaGrilla(lstPedido); 
//
//////            JOptionPane.showMessageDialog(buscarPedidoCompraView, m);
            lstPedido=m.listarPedidoPorEstado(1); //Esto porque solo me debe mostrar las ordenes en estado Registrado
            buscarPedidoCompraView.realizarFiltro(lstPedido);
        }
    }
    
    
//     public void listarResultados(int e){ // Ojo q solo estoy buscando por código! Deberia buscar por todos los campos.
//        if (e != 0)
//         lstPedido = m.listarPedidoCompraPorCodigo(e);   
//        else
//         lstPedido = m.listarPedidoCompra();
//         buscarPedidoCompraView.llenaGrilla(lstPedido);        
//    }
     
     class limpiarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            buscarPedidoCompraView.LimpiarDatos();
        }        
    }  
     
     class cancelarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            buscarPedidoCompraView.dispose();
        }        
    }  
     
     public void cerrarVentana(){
         buscarPedidoCompraView.dispose();
     }
    
}
